package controlador;

import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

import javax.print.attribute.standard.Media;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JTextField;

import modelo.Equipo;
import modelo.Jugador;
import modelo.Liga;
import vista.VentanaEquipo;

public class ControladorVentanaEquipo implements ActionListener {

	private VentanaEquipo miEquipo;
	 private Liga liga;
	 protected JButton btnCargJugadores;
	 protected JTextField txtRuta;
	 private ArrayList<Jugador>auxJugadores=new ArrayList<Jugador>() ; // se utiiza para llenar el vector de jugadores
	 
	 public ControladorVentanaEquipo(Liga liga) {
		 miEquipo= new VentanaEquipo();
		 miEquipo.setLocationRelativeTo(null);
		 miEquipo.setVisible(true);	
		 miEquipo.agregarListener(this);
		 this.liga=liga;
}
 
  
   public class TxTFilter extends javax.swing.filechooser.FileFilter{
	    final static String txt= "txt";
	    /** Creates a new instance of XMLFilter */
	    public TxTFilter() {
	    }

	    public boolean accept(File f) {
	         if (f.isDirectory()) { 
	            return true; 
	        } 
	        String s = f.getName(); 
	        int i = s.lastIndexOf('.'); 

	        if (i > 0 &&  i < s.length() - 1) { 
	            String extension = s.substring(i+1).toLowerCase(); 
	            if (txt.equals(extension)) { 
	                    return true; 
	            } else { 
	                return false; 
	            } 
	        } 
	        return false; 
	    }

	    public String getDescription() {
	        return "Archivos .txt";
	    }
	    
	}
	 
	 @Override	
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if (e.getActionCommand().equalsIgnoreCase("Registrar")){
			if (auxJugadores.size() > 0){
				agregarEquipo();
			}
			else{
				miEquipo.mostrarMensaje("Debe añadir los jugadores del equipo ");
					
			}
		} 
		// Carga del archivo de Texto
		if (e.getActionCommand().equalsIgnoreCase("Cargar")){
			File f;
			 javax.swing.JFileChooser j= new javax.swing.JFileChooser();
			 j.showOpenDialog(j); 
			// if(j.APPROVE_OPTION){
			 String ruta=j.getSelectedFile().getAbsolutePath();
			 miEquipo.txtRuta.setText(ruta.toString());
			 f= new File(ruta);   
				String aux;
				BufferedReader bf;
				FileReader fr = null;
				 try {
					fr = new FileReader(f);
				} catch (FileNotFoundException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			     bf = new BufferedReader(fr);
			     Equipo equipo = new Equipo();
			     String cedula;
			     String nombre;
			     String apellido;
			     String fecNac;
			     String posicionJuega;
			     int golesAnota,i;
			     Jugador jugador;
				try {
					while ((aux = bf.readLine())!=null ){
						jugador = new Jugador();
						i=0;
						while (i<=5){
							i++;
							if (i==1){
								cedula = aux; 
								jugador.setCedula(cedula);
								System.out.println(aux);
							}
							if (i==2){
								nombre = aux;
								jugador.setNombre(nombre);
								System.out.println(aux);
							}
							if (i==3){
								apellido = aux; 
								jugador.setApellido(apellido);
								System.out.println(aux);
								
							}
							if (i==4){
								fecNac = aux; 
								jugador.setFecNac(fecNac);
								System.out.println(aux);
							}
							if (i==5){
								posicionJuega = aux; 
								jugador.setPosicionJuega(posicionJuega);
								System.out.println(aux);
							}	
							aux = bf.readLine();
						}		
						
						auxJugadores.add(jugador);
						//equipo.setJugadores(jugador);
					 }
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			     try {
					bf.close();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
		}
		//System.out.println(bf.readLine());

		}		
	
		public void cargarArchivo(File f){			     
			  
			    
		}
	
		public void agregarEquipo(){
		try{
	
		
		String codEquipo = miEquipo.getCodEquipo();
		String nomEquipo = miEquipo.getNombEquipo();
		int anno = Integer.parseInt(miEquipo.getAnnoFundacion());
		String ciudad = miEquipo.getCiudad();
		String estadio = miEquipo.getNomEstadio();
		Equipo equipo = new Equipo (codEquipo, nomEquipo, anno, ciudad, estadio);
		equipo.setJugadores(auxJugadores);
		
		liga.agregarEquipos(equipo);
		
		miEquipo.mostrarMensaje("El Equipo " +equipo.getNomEquipo()+ " Ha sido agregado a la liga");
		miEquipo.blanquearCampos();
		miEquipo.mostrarDatos("LA liga Actualmente posee " +liga.contarEquipos() + " Equipos");
		}
		
	
		
	catch(NumberFormatException e) {
		// Mensaje de Dialogo en caso de que ocurra una excepcion en la conversion de numeros
		miEquipo.mostrarMensaje("El año de Fundación debe ser Numeros Enteros");
	}
		
	catch(Exception e) {
		// Mensaje de Dialogo en caso de que ocurra cualquier otra excepcion
		miEquipo.mostrarMensaje(e.toString());
	}
}
		
	}				